package pe.com.empresa.datos.dominio;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class PersonaNaturalExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public PersonaNaturalExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdPersonaIsNull() {
            addCriterion("idPersona is null");
            return (Criteria) this;
        }

        public Criteria andIdPersonaIsNotNull() {
            addCriterion("idPersona is not null");
            return (Criteria) this;
        }

        public Criteria andIdPersonaEqualTo(Integer value) {
            addCriterion("idPersona =", value, "idPersona");
            return (Criteria) this;
        }

        public Criteria andIdPersonaNotEqualTo(Integer value) {
            addCriterion("idPersona <>", value, "idPersona");
            return (Criteria) this;
        }

        public Criteria andIdPersonaGreaterThan(Integer value) {
            addCriterion("idPersona >", value, "idPersona");
            return (Criteria) this;
        }

        public Criteria andIdPersonaGreaterThanOrEqualTo(Integer value) {
            addCriterion("idPersona >=", value, "idPersona");
            return (Criteria) this;
        }

        public Criteria andIdPersonaLessThan(Integer value) {
            addCriterion("idPersona <", value, "idPersona");
            return (Criteria) this;
        }

        public Criteria andIdPersonaLessThanOrEqualTo(Integer value) {
            addCriterion("idPersona <=", value, "idPersona");
            return (Criteria) this;
        }

        public Criteria andIdPersonaIn(List<Integer> values) {
            addCriterion("idPersona in", values, "idPersona");
            return (Criteria) this;
        }

        public Criteria andIdPersonaNotIn(List<Integer> values) {
            addCriterion("idPersona not in", values, "idPersona");
            return (Criteria) this;
        }

        public Criteria andIdPersonaBetween(Integer value1, Integer value2) {
            addCriterion("idPersona between", value1, value2, "idPersona");
            return (Criteria) this;
        }

        public Criteria andIdPersonaNotBetween(Integer value1, Integer value2) {
            addCriterion("idPersona not between", value1, value2, "idPersona");
            return (Criteria) this;
        }

        public Criteria andApePaterIsNull() {
            addCriterion("apePater is null");
            return (Criteria) this;
        }

        public Criteria andApePaterIsNotNull() {
            addCriterion("apePater is not null");
            return (Criteria) this;
        }

        public Criteria andApePaterEqualTo(String value) {
            addCriterion("apePater =", value, "apePater");
            return (Criteria) this;
        }

        public Criteria andApePaterNotEqualTo(String value) {
            addCriterion("apePater <>", value, "apePater");
            return (Criteria) this;
        }

        public Criteria andApePaterGreaterThan(String value) {
            addCriterion("apePater >", value, "apePater");
            return (Criteria) this;
        }

        public Criteria andApePaterGreaterThanOrEqualTo(String value) {
            addCriterion("apePater >=", value, "apePater");
            return (Criteria) this;
        }

        public Criteria andApePaterLessThan(String value) {
            addCriterion("apePater <", value, "apePater");
            return (Criteria) this;
        }

        public Criteria andApePaterLessThanOrEqualTo(String value) {
            addCriterion("apePater <=", value, "apePater");
            return (Criteria) this;
        }

        public Criteria andApePaterLike(String value) {
            addCriterion("apePater like", value, "apePater");
            return (Criteria) this;
        }

        public Criteria andApePaterNotLike(String value) {
            addCriterion("apePater not like", value, "apePater");
            return (Criteria) this;
        }

        public Criteria andApePaterIn(List<String> values) {
            addCriterion("apePater in", values, "apePater");
            return (Criteria) this;
        }

        public Criteria andApePaterNotIn(List<String> values) {
            addCriterion("apePater not in", values, "apePater");
            return (Criteria) this;
        }

        public Criteria andApePaterBetween(String value1, String value2) {
            addCriterion("apePater between", value1, value2, "apePater");
            return (Criteria) this;
        }

        public Criteria andApePaterNotBetween(String value1, String value2) {
            addCriterion("apePater not between", value1, value2, "apePater");
            return (Criteria) this;
        }

        public Criteria andApeMaterIsNull() {
            addCriterion("apeMater is null");
            return (Criteria) this;
        }

        public Criteria andApeMaterIsNotNull() {
            addCriterion("apeMater is not null");
            return (Criteria) this;
        }

        public Criteria andApeMaterEqualTo(String value) {
            addCriterion("apeMater =", value, "apeMater");
            return (Criteria) this;
        }

        public Criteria andApeMaterNotEqualTo(String value) {
            addCriterion("apeMater <>", value, "apeMater");
            return (Criteria) this;
        }

        public Criteria andApeMaterGreaterThan(String value) {
            addCriterion("apeMater >", value, "apeMater");
            return (Criteria) this;
        }

        public Criteria andApeMaterGreaterThanOrEqualTo(String value) {
            addCriterion("apeMater >=", value, "apeMater");
            return (Criteria) this;
        }

        public Criteria andApeMaterLessThan(String value) {
            addCriterion("apeMater <", value, "apeMater");
            return (Criteria) this;
        }

        public Criteria andApeMaterLessThanOrEqualTo(String value) {
            addCriterion("apeMater <=", value, "apeMater");
            return (Criteria) this;
        }

        public Criteria andApeMaterLike(String value) {
            addCriterion("apeMater like", value, "apeMater");
            return (Criteria) this;
        }

        public Criteria andApeMaterNotLike(String value) {
            addCriterion("apeMater not like", value, "apeMater");
            return (Criteria) this;
        }

        public Criteria andApeMaterIn(List<String> values) {
            addCriterion("apeMater in", values, "apeMater");
            return (Criteria) this;
        }

        public Criteria andApeMaterNotIn(List<String> values) {
            addCriterion("apeMater not in", values, "apeMater");
            return (Criteria) this;
        }

        public Criteria andApeMaterBetween(String value1, String value2) {
            addCriterion("apeMater between", value1, value2, "apeMater");
            return (Criteria) this;
        }

        public Criteria andApeMaterNotBetween(String value1, String value2) {
            addCriterion("apeMater not between", value1, value2, "apeMater");
            return (Criteria) this;
        }

        public Criteria andFechaNacimientoIsNull() {
            addCriterion("fechaNacimiento is null");
            return (Criteria) this;
        }

        public Criteria andFechaNacimientoIsNotNull() {
            addCriterion("fechaNacimiento is not null");
            return (Criteria) this;
        }

        public Criteria andFechaNacimientoEqualTo(Date value) {
            addCriterion("fechaNacimiento =", value, "fechaNacimiento");
            return (Criteria) this;
        }

        public Criteria andFechaNacimientoNotEqualTo(Date value) {
            addCriterion("fechaNacimiento <>", value, "fechaNacimiento");
            return (Criteria) this;
        }

        public Criteria andFechaNacimientoGreaterThan(Date value) {
            addCriterion("fechaNacimiento >", value, "fechaNacimiento");
            return (Criteria) this;
        }

        public Criteria andFechaNacimientoGreaterThanOrEqualTo(Date value) {
            addCriterion("fechaNacimiento >=", value, "fechaNacimiento");
            return (Criteria) this;
        }

        public Criteria andFechaNacimientoLessThan(Date value) {
            addCriterion("fechaNacimiento <", value, "fechaNacimiento");
            return (Criteria) this;
        }

        public Criteria andFechaNacimientoLessThanOrEqualTo(Date value) {
            addCriterion("fechaNacimiento <=", value, "fechaNacimiento");
            return (Criteria) this;
        }

        public Criteria andFechaNacimientoIn(List<Date> values) {
            addCriterion("fechaNacimiento in", values, "fechaNacimiento");
            return (Criteria) this;
        }

        public Criteria andFechaNacimientoNotIn(List<Date> values) {
            addCriterion("fechaNacimiento not in", values, "fechaNacimiento");
            return (Criteria) this;
        }

        public Criteria andFechaNacimientoBetween(Date value1, Date value2) {
            addCriterion("fechaNacimiento between", value1, value2, "fechaNacimiento");
            return (Criteria) this;
        }

        public Criteria andFechaNacimientoNotBetween(Date value1, Date value2) {
            addCriterion("fechaNacimiento not between", value1, value2, "fechaNacimiento");
            return (Criteria) this;
        }

        public Criteria andTipoDocumentoIsNull() {
            addCriterion("tipoDocumento is null");
            return (Criteria) this;
        }

        public Criteria andTipoDocumentoIsNotNull() {
            addCriterion("tipoDocumento is not null");
            return (Criteria) this;
        }

        public Criteria andTipoDocumentoEqualTo(String value) {
            addCriterion("tipoDocumento =", value, "tipoDocumento");
            return (Criteria) this;
        }

        public Criteria andTipoDocumentoNotEqualTo(String value) {
            addCriterion("tipoDocumento <>", value, "tipoDocumento");
            return (Criteria) this;
        }

        public Criteria andTipoDocumentoGreaterThan(String value) {
            addCriterion("tipoDocumento >", value, "tipoDocumento");
            return (Criteria) this;
        }

        public Criteria andTipoDocumentoGreaterThanOrEqualTo(String value) {
            addCriterion("tipoDocumento >=", value, "tipoDocumento");
            return (Criteria) this;
        }

        public Criteria andTipoDocumentoLessThan(String value) {
            addCriterion("tipoDocumento <", value, "tipoDocumento");
            return (Criteria) this;
        }

        public Criteria andTipoDocumentoLessThanOrEqualTo(String value) {
            addCriterion("tipoDocumento <=", value, "tipoDocumento");
            return (Criteria) this;
        }

        public Criteria andTipoDocumentoLike(String value) {
            addCriterion("tipoDocumento like", value, "tipoDocumento");
            return (Criteria) this;
        }

        public Criteria andTipoDocumentoNotLike(String value) {
            addCriterion("tipoDocumento not like", value, "tipoDocumento");
            return (Criteria) this;
        }

        public Criteria andTipoDocumentoIn(List<String> values) {
            addCriterion("tipoDocumento in", values, "tipoDocumento");
            return (Criteria) this;
        }

        public Criteria andTipoDocumentoNotIn(List<String> values) {
            addCriterion("tipoDocumento not in", values, "tipoDocumento");
            return (Criteria) this;
        }

        public Criteria andTipoDocumentoBetween(String value1, String value2) {
            addCriterion("tipoDocumento between", value1, value2, "tipoDocumento");
            return (Criteria) this;
        }

        public Criteria andTipoDocumentoNotBetween(String value1, String value2) {
            addCriterion("tipoDocumento not between", value1, value2, "tipoDocumento");
            return (Criteria) this;
        }

        public Criteria andNumDocumentoIsNull() {
            addCriterion("numDocumento is null");
            return (Criteria) this;
        }

        public Criteria andNumDocumentoIsNotNull() {
            addCriterion("numDocumento is not null");
            return (Criteria) this;
        }

        public Criteria andNumDocumentoEqualTo(String value) {
            addCriterion("numDocumento =", value, "numDocumento");
            return (Criteria) this;
        }

        public Criteria andNumDocumentoNotEqualTo(String value) {
            addCriterion("numDocumento <>", value, "numDocumento");
            return (Criteria) this;
        }

        public Criteria andNumDocumentoGreaterThan(String value) {
            addCriterion("numDocumento >", value, "numDocumento");
            return (Criteria) this;
        }

        public Criteria andNumDocumentoGreaterThanOrEqualTo(String value) {
            addCriterion("numDocumento >=", value, "numDocumento");
            return (Criteria) this;
        }

        public Criteria andNumDocumentoLessThan(String value) {
            addCriterion("numDocumento <", value, "numDocumento");
            return (Criteria) this;
        }

        public Criteria andNumDocumentoLessThanOrEqualTo(String value) {
            addCriterion("numDocumento <=", value, "numDocumento");
            return (Criteria) this;
        }

        public Criteria andNumDocumentoLike(String value) {
            addCriterion("numDocumento like", value, "numDocumento");
            return (Criteria) this;
        }

        public Criteria andNumDocumentoNotLike(String value) {
            addCriterion("numDocumento not like", value, "numDocumento");
            return (Criteria) this;
        }

        public Criteria andNumDocumentoIn(List<String> values) {
            addCriterion("numDocumento in", values, "numDocumento");
            return (Criteria) this;
        }

        public Criteria andNumDocumentoNotIn(List<String> values) {
            addCriterion("numDocumento not in", values, "numDocumento");
            return (Criteria) this;
        }

        public Criteria andNumDocumentoBetween(String value1, String value2) {
            addCriterion("numDocumento between", value1, value2, "numDocumento");
            return (Criteria) this;
        }

        public Criteria andNumDocumentoNotBetween(String value1, String value2) {
            addCriterion("numDocumento not between", value1, value2, "numDocumento");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}